package com.ruoyi.service.purchase;

import com.ruoyi.domain.purchase.MesPurchaseReceiptItem;
import java.util.List;

/**
 * 采购入库明细Service接口
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public interface IMesPurchaseReceiptItemService {
    /**
     * 查询采购入库明细
     * 
     * @param itemId 采购入库明细主键
     * @return 采购入库明细
     */
    public MesPurchaseReceiptItem selectMesPurchaseReceiptItemByItemId(Long itemId);

    /**
     * 查询采购入库明细列表
     * 
     * @param mesPurchaseReceiptItem 采购入库明细
     * @return 采购入库明细集合
     */
    public List<MesPurchaseReceiptItem> selectMesPurchaseReceiptItemList(MesPurchaseReceiptItem mesPurchaseReceiptItem);

    /**
     * 新增采购入库明细
     * 
     * @param mesPurchaseReceiptItem 采购入库明细
     * @return 结果
     */
    public int insertMesPurchaseReceiptItem(MesPurchaseReceiptItem mesPurchaseReceiptItem);

    /**
     * 修改采购入库明细
     * 
     * @param mesPurchaseReceiptItem 采购入库明细
     * @return 结果
     */
    public int updateMesPurchaseReceiptItem(MesPurchaseReceiptItem mesPurchaseReceiptItem);

    /**
     * 批量删除采购入库明细
     * 
     * @param itemIds 需要删除的采购入库明细主键集合
     * @return 结果
     */
    public int deleteMesPurchaseReceiptItemByItemIds(Long[] itemIds);

    /**
     * 删除采购入库明细信息
     * 
     * @param itemId 采购入库明细主键
     * @return 结果
     */
    public int deleteMesPurchaseReceiptItemByItemId(Long itemId);

    /**
     * 根据入库单ID查询明细列表
     * 
     * @param receiptId 入库单ID
     * @return 明细列表
     */
    public List<MesPurchaseReceiptItem> selectItemListByReceiptId(Long receiptId);

    /**
     * 根据物料编码查询入库明细
     * 
     * @param materialCode 物料编码
     * @return 明细列表
     */
    public List<MesPurchaseReceiptItem> selectItemListByMaterialCode(String materialCode);

    /**
     * 根据批次号查询入库明细
     * 
     * @param batchCode 批次号
     * @return 明细列表
     */
    public List<MesPurchaseReceiptItem> selectItemListByBatchCode(String batchCode);
}